1. МНОГООКОННЫЕ ПРОГРАММЫ

1.1. ПОСТАНОВКА ЗАДАЧИ

Необходимо сделать программу из трех окон с переходом от одного к другому. В первом и втором окне реализовать запрос данных из списков, в третьем окне выдать выбранные пользователем значения.

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image001.jpgОписание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image002.jpgОписание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image003.jpg

1.2. ПРИНЦИП РЕАЛИЗАЦИИ

Для реализации многооконных программ имеются разные подходы. Рассмотрим наиболее простой и удобный вариант, предоставляющий системой NetBeans.

Основу программы будет составлять обычное окно JFrame. Это окно создастся при создании простейшей программы, рассмотренной ранее в теме «NetBeans. Простейшая программа». Назовем его Frame1.

В основное окно Frame1 будут помещены дополнительные два окна, тоже типа JFrame. Эти дополнительные окна Frame1 и Frame2 будут добавлены в основное окно через компонент «Фрейм» из палитры «Диалоговые окно Swing». Получится следующая структура программы:

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image004.png

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image005.png

1.3. СОЗДАНИЕ МНОГООКОННОЙ ПРОГРАММЫ

1.3.1. СОЗДАНИЕ НОВОГО ПРОЕКТА

Выбираем «Файл» - «Создать проект»

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image006.jpg

Указываем тип проекта «Java» - «Приложение Java»

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image007.jpg

Задаем имя проекту и указываем, что главный класс создавать ненужно

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image008.jpg

1.3.2. СОЗДАНИЕ ПЕРВОЙ ФОРМЫ

Добавляем в проект первую (основную) форму

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image009.jpg

Задаем форме имя класса и пакет

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image010.jpg

Настраиваем форму на свободное размещение компонент

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image011.jpg

Задаем окну наличие размера и центрирование на экране

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image012.jpg

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image013.jpg

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image014.jpg

Запрещаем главному окну изменять размеры (убираем галочку со свойства «resizable»)

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image015.png

Задаем окну стиль оформления «Windows»

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image016.jpg

Запускаем программу для указания ее главного класса

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image017.jpg

Закрываем запущенную программу

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image018.jpg

1.3.3. ДОБАВЛЕНИЕ В ПРОЕКТ ДВУХ ДОПОЛНИТЕЛЬНЫХ ОКОН

Добавляем на форму Form1 дополнительно два окна из палитры «Диалоговые окна Swing» - «Фрейм».

Перетаскиваем компонент «Фрейм» на главную форму – в программу добавляется второе окно.

Перетаскиваем еще один компонент «Фрейм» на главную форму – в программу добавляется третье окно.

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image019.jpg

Выбираем второе окно jFrame1 и настраиваем его для расположения по центру экрана

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image020.jpg

Для этого вписываем в указанное на рисунке место строку «jFrame1.setLocationRelativeTo(null);»

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image021.jpg

Выбираем третье окно jFrame2 и настраиваем его для расположения по центру экрана

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image022.jpg

Для этого вписываем в указанное на рисунке место строку «jFrame2.setLocationRelativeTo(null);»

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image023.jpg

Переименовываем окно jFrame2 в «jFrame3»

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image024.jpg

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image025.jpg

Переименовываем окно jFrame1 в «jFrame2»

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image026.jpg

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image027.jpg

1.3.4. НАСТРОЙКА И УСТАНОВКИ ГЛАВНОГО (ПЕРВОГО) ОКНА

Наносим и настраиваем компоненты в главном окне

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image028.jpg

Задаем название окну название «Form1» в свойстве «title»

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image029.jpg

Делаем в главном окне обработчик нажатия кнопки

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// Переход на 2 окно, кнопка «Вперед»

this.setVisible(false); // Спрятать главное окно 1

jFrame2.setVisible(true); // Показать окно 2

}

1.3.5. НАСТРОЙКА И УСТАНОВКИ ВТОРОГО ОКНА

Выбираем второе окно

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image030.jpg

Указываем второму окну свободное размещение компонент

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image031.jpg

Запрещаем второму окну изменять размеры - «resizable» и задаем нужный размер в свойстве «minimumSize». Без задания данного размера форма не будет нормально отображаться

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image032.jpg

Наносим и настраиваем компоненты во втором окне

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image033.jpg

Задаем второму окну название «Form2» в свойстве «title»

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image034.jpg

Делаем во втором окне jFrame2 процедуру на закрытие и обработчики нажатия кнопок

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image035.jpg

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

// Переход на главное окно 1 из 2 окна, кнопка «Назад»

jFrame2.setVisible(false); // Спрятать окно 2

this.setVisible(true); // Показать главное окно 1

}

 

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

// Переход на 3 окно из 2 окна, кнопка «Вперед»

jFrame2.setVisible(false); // Спрятать окно 2

jFrame3.setVisible(true); // Показать окно 3

}

private void jFrame2WindowClosing(java.awt.event.WindowEvent evt) {

// Выход из программы

System.exit(0); // Выход из программы

}

1.3.6. НАСТРОЙКА И УСТАНОВКИ ТРЕТЬЕГО ОКНА

Выбираем третье окно

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image036.jpg

Указываем третьему окну свободное размещение компонент

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image031.jpg

Запрещаем третьему окну изменять размеры - «resizable» и задаем нужный размер в свойстве «minimumSize». Без задания данного размера форма не будет нормально отображаться

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image037.png

Наносим и настраиваем компоненты в третьем окне

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image038.jpg

Задаем третьему окну название «Form3» в свойстве «title»

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image039.jpg

Делаем в третьем окне процедуру на закрытие и открытие окна  и обработчики нажатия кнопок

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image040.jpg

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

// Переход на 2 окно из 3 окна, кнопка «Назад»

jFrame3.setVisible(false); // Спрятать окно 3

jFrame2.setVisible(true); // Показать окно 2

}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {

// Кнопка выхода

System.exit(0); // Выход из программы

}

private void jFrame3WindowClosing(java.awt.event.WindowEvent evt) {

// Выход из программы

System.exit(0); // Выход из программы

}

private void jFrame3WindowActivated(java.awt.event.WindowEvent evt) {

// Выдача результатов при открытии окна 3

jTextArea1.setText(""); // Очистка компонента

jTextArea1.append("Ваш выбор:" + "\n");

jTextArea1.append("___________________" + "\n");

jTextArea1.append("Город: " + jList1.getSelectedValue().toString() + "\n");

jTextArea1.append("Транспорт: " + jComboBox1.getSelectedItem().toString() + "\n");

}

1.3.7. ЗАПУСКАЕМ ГОТОВУЮ ПРОГРАММУ

2. ВСПОМОГАТЕЛЬНЫЕ МОДАЛЬНЫЕ ОКНА JDialog

Часто в программе необходимо иметь дополнительные вспомогательные окна, которые служат для выдачи какой-либо справочной информации или для запроса ответа на вопрос, например окно «О программе» или запросы на удаление файлов.

Подобные окна, как правило, открываются в модальном режиме – т.е. поверх всех других окон, и пока данное окно не будет закрыто, вызвавшее его основное окно будет неактивным.

Окна данного типа реализуются через окна типа JDialog. Для добавления в программу окна  JDialog необходимо вызвать правой кнопкой мыши контекстное меню на имени пакета, выбрать опцию «Новый» - «Форма JDialog», затем указать имя класса (окна) и пакет, к которому должно относиться окно:

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image041.jpg

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image042.jpg

2.1. Пример использования модальных окон JDialog

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

// Вызов окна «О программе»

new jDialog1(null, true).setVisible(true);

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// Закрытие окна "О программе" (в окне JDialog)

this.dispose();

}

Описание: C:\Documents and Settings\User\Рабочий стол\eps\src\eps\doc\lectures\Многооконные программы.files\image043.jpg